package com.yuandian.api.management.vo;

import com.yuandian.api.management.entity.ConfAlarmDimension;
import com.yuandian.api.management.entity.ConfAlarmThreshold;
import com.yuandian.api.management.validate.InsertFlag;
import com.yuandian.api.management.validate.UpdateFlag;
import com.yuandian.po.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
public class AlarmsVo extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 告警编号
     */
	@NotNull(message = "业告警编号不能为空", groups = UpdateFlag.class)
	private Integer id;

    /**
     * 告警名称
     */
    private String name;

    /**
     * 指标类型 1为基础告警，2为统计告警
     */
    private Integer type;

    /**
     * 告警指标
     */
    private Integer alarmIndicatorId;

    /**
     * 告警对象
     */
	@NotNull(message = "告警对象不能为空", groups = InsertFlag.class)
    private Integer alarmObjId;

    /**
     * 告警信息模板
     */
    private Integer alarmTemplateId;

    /**
     * 起步值
     */
    private Integer startValue;

    /**
     * 启用状态 0-启用 1-禁用
     */
    private Integer isEnable;
    
    /**
     * 指标名称
     */
    private String indicatorName;
    
    /**
     * 模板名称
     */
    private String templateName;
    
    /**
     * 对象名称
     * 如果当前类型是统计告警：那么是指标对象名称
     * 如果当前是基础告警：那么是告警对象名称
     */
    private String objName;


    /**
     * 告警维度
     */
	@NotNull(message = "告警维度不能为空", groups = InsertFlag.class)
	private List<ConfAlarmDimension> dimensions;
    
    /**
     * 告警阀值
     */
	@NotNull(message = "告警阀值不能为空", groups = InsertFlag.class)
	private List<ConfAlarmThreshold> thresholds;
}
